Skip to content

refactor: configurable home dir + unified pathspec ignore#561

Open
kobor42 wants to merge 1 commit intosafishamsi:v5from
kobor42:feat/configurable-home-and-gitignore
Open

refactor: configurable home dir + unified pathspec ignore#561
kobor42 wants to merge 1 commit intosafishamsi:v5from
kobor42:feat/configurable-home-and-gitignore

Conversation

@kobor42
Copy link
Copy Markdown

@kobor42 kobor42 commented Apr 26, 2026

  • New paths.py: GRAPHIFY_HOME-configurable home dir (default .graphify), with auto_migrate() called from every graphify install flow so an upgrading user's graphify-out/ gets renamed in lockstep with the CLAUDE.md / AGENTS.md / hooks / skill rewrites.
  • detect.py: built-in noise as a prepended GitIgnoreSpec; 5 parallel pruning systems (_SKIP_DIRS, _SKIP_FILES, _is_noise_dir, dotfile prune, user gitignore) collapse into 1 chain. _is_ignored tri-state -> plain bool via spec.check_file().
  • Drop hardcoded "graphify-out" everywhere except migrate-home: security.py, hooks.py, watch.py, transcribe.py, main.py CLI defaults, all skill template strings, the Codex/Gemini hook dicts.
  • Bug fix: watch.py event filter no longer infinite-loops on the new home dir (was hardcoded to graphify-out).
  • 329 tests pass (was 267). +pathspec>=0.12 dep.

- New paths.py: GRAPHIFY_HOME-configurable home dir (default `.graphify`),
  with auto_migrate() called from every `graphify install` flow so an
  upgrading user's `graphify-out/` gets renamed in lockstep with the
  CLAUDE.md / AGENTS.md / hooks / skill rewrites.
- detect.py: built-in noise as a prepended GitIgnoreSpec; 5 parallel
  pruning systems (_SKIP_DIRS, _SKIP_FILES, _is_noise_dir, dotfile
  prune, user gitignore) collapse into 1 chain. `_is_ignored`
  tri-state -> plain bool via `spec.check_file()`.
- Drop hardcoded "graphify-out" everywhere except `migrate-home`:
  security.py, hooks.py, watch.py, transcribe.py, __main__.py CLI
  defaults, all skill template strings, the Codex/Gemini hook dicts.
- Bug fix: watch.py event filter no longer infinite-loops on the new
  home dir (was hardcoded to `graphify-out`).
- 329 tests pass (was 267). +pathspec>=0.12 dep.
@kobor42
Copy link
Copy Markdown
Author

kobor42 commented Apr 26, 2026

@safishamsi I was annoyed by the graphity-out folder and the json files put in the root directory.
Also I am building a dotnet blazorwasm projekt which generates typescript files, which are analysed by your graphily - and gets confused by it.

So I made a PR that fixes both problem.

  1. Every file is generated under .graphify/ folder - can be changed with config. Migration script included.
  2. .gitignore files are taken into account, and .graphifyignore file behaviour is extended:
    2.1. Regular .gitignore is taken as .graphifyignore
    2.2. .graphifyignore now supports standard .gitignore syntax (negation, pattern matching, etc.)
    2.3. .graphifyignore file overrides (or extends) .gitignore rules.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant